package com.epalmpay.service.bonus;
import com.epalmpay.exception.ApplicationException;
import com.epalmpay.dto.bonus.BonusShopSettleLogInDTO;
import com.epalmpay.dto.bonus.BonusShopSettleLogListOutDTO;
import com.epalmpay.dto.bonus.BonusVerifyLogInDTO;
import com.epalmpay.dto.bonus.BonusVerifyLogListOutDTO;
import com.epalmpay.dto.bonus.BonusVerifyShopInDTO;
import com.epalmpay.dto.bonus.BonusVerifyShopListOutDTO;
import com.epalmpay.dto.bonus.BonusVerifyShopOutDTO;
import com.epalmpay.dto.system.PageDTO;
import com.epalmpay.dto.system.ShopListOutDTO;

public interface IBonusVerifyShopService {
	
	/**
	 * 积分核销门店详情列表
	 * @param bonusVerifyShopInDTO
	 * @param pageDTO
	 * @return
	 * @throws ApplicationException
	 */
	public BonusVerifyShopListOutDTO listBonusVerifyShop (BonusVerifyShopInDTO bonusVerifyShopInDTO, PageDTO pageDTO)throws ApplicationException;
	
	/**
	 * 可核销门店列表
	 * @param shopInDTO
	 * @param pageDTO
	 * @return
	 * @throws ApplicationException
	 */
	public ShopListOutDTO listCanShop (BonusVerifyShopInDTO bonusVerifyShopInDTO, PageDTO pageDTO)throws ApplicationException;
	
	/**
	 * 批量保存可核销门店
	 * @param bonusVerifyShopInDTO
	 * @return
	 * @throws ApplicationException
	 */
	public Boolean addBonusVerifyShop (BonusVerifyShopInDTO bonusVerifyShopInDTO)throws ApplicationException;
	
	
	/**
	 * 更改核销状态
	 * @param bonusVerifyShopInDTO
	 * @return
	 * @throws ApplicationException
	 */
	public Boolean updateBonusStatus (BonusVerifyShopInDTO bonusVerifyShopInDTO)throws ApplicationException;
	
	
	/**
	 * 积分结算
	 * @param bonusVerifyShopInDTO
	 * @return
	 * @throws ApplicationException
	 */
	public Boolean updateBonusSettlement (BonusShopSettleLogInDTO bonusShopSettleLogInDTO)throws ApplicationException;

	/**
	 * 积分核销门店详情
	 * @param bonusVerifyShopInDTO   BonusVerifyShopInDTO
	 * @return
	 * @throws ApplicationException
	 */
	public BonusVerifyShopOutDTO BonusVerifyShopView (BonusVerifyShopInDTO bonusVerifyShopInDTO)throws ApplicationException;
	
	/**
	 * 根据门店查询积分月报表  
	 * @param bonusVerifyShopInDTO
	 * @param pageDTO
	 * @return
	 * @throws ApplicationException
	 */
	public BonusVerifyLogListOutDTO listMonthBonusVerifyLog  (BonusVerifyLogInDTO bonusVerifyShopInDTO, PageDTO pageDTO)throws ApplicationException;
	
	/**
	 * 根据门店以及月份查询门店核销信息
	 * @param bonusVerifyShopInDTO
	 * @param pageDTO
	 * @return
	 * @throws ApplicationException
	 */
	public BonusVerifyLogListOutDTO listBonusVerifyLog (BonusVerifyLogInDTO bonusVerifyShopInDTO, PageDTO pageDTO)throws ApplicationException;
	
	/**
	 * 积分结算记录列表  
	 * @param bonusShopSettleLogInDTO
	 * @param pageDTO
	 * @return
	 * @throws ApplicationException
	 */
	public BonusShopSettleLogListOutDTO listBonusShopSettleLog (BonusShopSettleLogInDTO bonusShopSettleLogInDTO, PageDTO pageDTO)throws ApplicationException;
	
	
	/**
	 * 月核销详情记录
	 * @param bonusVerifyShopInDTO   BonusVerifyShopInDTO
	 * @return
	 * @throws ApplicationException
	 */
	public BonusVerifyShopOutDTO bonusMonthVerifyShopView (BonusVerifyShopInDTO bonusVerifyShopInDTO)throws ApplicationException;

}
